/*
 * PACKAGE NAME: com.jodinfo.outmirror.api.tabledefine.service
 * FILE    NAME: TableDefineDaoImpl.java
 * COPYRIGHT: Copyright(c) © 2016 heroj Company Ltd. All Rights Reserved
 */ 
package com.jodinfo.outmirror.api.tabledefine.service;

import java.math.BigInteger;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hero.core.entity.ResponseEntity;
import com.jodinfo.outmirror.api.tabledefine.entity.SubTableEntity;
import com.jodinfo.outmirror.api.tabledefine.entity.TableDefineEntity;

/**
 * TableDefineBizService接口
 * @author shensu
 * @date 2016年12月30日 上午9:08:32
 * @version <b>1.0.0</b>
 */
public interface TableDefineBizService {
	/**
	 * 查询全部TableDefineEntity 不带分页
	 * @author shensu
	 * @date 2016年12月30日 上午9:11:48
	 * @param TableDefineEntity tableDefineEntity
	 * @return String
	 */
	public String queryAllTableDefine(TableDefineEntity tableDefineEntity); 
	
	/**
	 * 查询全部TableDefineEntity带分页
	 * @author shensu
	 * @date 2016年12月30日 上午9:11:48
	 * @param TableDefineEntity tableDefineEntity
	 * @return String
	 */
	public String queryListForPageTableDefine(TableDefineEntity tableDefineEntity); 
	/**
	 * 按主键查询TableDefineEntity
	 * @author shensu
	 * @date 2016年12月30日 上午9:11:48
	 * @param BigInteger id
	 * @return  TableDefineEntity
	 */
	public TableDefineEntity queryById(BigInteger id);
	/**
	 * 按查询条件查询单个TableDefineEntity
	 * @author shensu
	 * @date 2016年12月30日 上午9:11:48
	 * @param TableDefineEntity tableDefineEntity
	 * @return  TableDefineEntity
	 */
	public TableDefineEntity queryEntityByTableDefine(TableDefineEntity tableDefineEntity);
	/**
	 * 插入TableDefineEntity
	 * @author shensu
	 * @date 2016年12月30日 上午9:11:48
	 * @param TableDefineEntity tableDefineEntity
	 * @return int
	 */
	public ResponseEntity addTableDefine(TableDefineEntity tableDefineEntity);
	
	/**
	 * 更新TableDefineEntity
	 * @author shensu
	 * @date 2016年12月30日 上午9:11:48
	 * @param TableDefineEntity tableDefineEntity
	 * @return int
	 */
	public ResponseEntity updateTableDefine(TableDefineEntity tableDefineEntity);
	/**
	 * 
	* @Title: exportTableDefine
	* @Description: 导出数据 
	* @param Entity
	* @param response
	* @throws
	 */
	public void exportTableDefine(TableDefineEntity tableDefineEntity, HttpServletResponse response);

	/**
	 * 去除重复
	 * @author shensu
	 * @date 2017年4月4日 上午8:55:37
	 * @param subTableEntity
	 * @return
	 */
	public ResponseEntity distinctRow(List<SubTableEntity> subTableEntity);

	/**
	 * 
	 * 查询并解析
	 * @author cao.weiwei
	 * @date 2017年4月12日 上午10:19:36
	 * @param tableDefineEntity
	 * @param request
	 * @return
	 */
	public TableDefineEntity queryAnalysisEntityByTableDefine(
			TableDefineEntity tableDefineEntity,HttpServletRequest request);

	/**
	 * 生成表单
	 * @author cao.weiwei
	 * @date 2017年4月20日 下午3:33:29
	 * @param tableDefineEntity
	 * @return
	 */
	public ResponseEntity generateTable(TableDefineEntity tableDefineEntity);
	
	
}

